草庐IT

c++ - RAII 和 C++ STL

全部标签

c - 字符串处理 C linux 和 windows

我是C编程的新手。我有这个问题,我不明白。windows下的字符串处理方式似乎与linux下的处理方式完全不同,为什么?这是我的代码#include#include//comparestringsvoidaddextname(char*str1,char*str2,char*nome1){inti,j;i=0;while(str1[i]!='.'){nome1[i]=str1[i];i++;}j=0;while(str2[j]!='\0'){nome1[i]=str2[j];i++;j++;}}intmain(){charstr1[9]="file.stl";charstr2[9]="

C++面试八股文:用过STL吗?

某日二师兄参加XXX科技公司的C++工程师开发岗位第21面:面试官:用过STL吗?二师兄:(每天都用好吗。。)用过一些。面试官:你知道STL是什么?二师兄:STL是指标准模板库(StandardTemplateLibrary),是C++区别于C语言的特征之一。面试官:那你知道STL的六大部件是什么?二师兄:分别是容器(container)、迭代器(iterator)、适配器(adaptor)、分配器(allocator)、仿函数(functor)和算法(algorithm)。面试官:那你知道有哪些容器吗?二师兄:STL中容器的数量比较多,按照类型可以分为顺序容器和关联容器。二师兄:顺序容器主要

c++ - 如何在 Linux 中的 GDB/Nemiver 中显示 C++ STL 容器

我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版

c++ - 如何在 Linux 中的 GDB/Nemiver 中显示 C++ STL 容器

我正在使用Linux(Ubuntu11.10)和gdb7.3/Nemiver0.8.2。我想显示STL容器的内容,但到目前为止我还没有真正成功。我应该使用任何其他可视化调试器(基于gdb更好)来显示STL容器变量吗?我正在寻找支持容器组合的解决方案(即std::map>>)。干杯 最佳答案 足够新的GDB版本支持来自Python的pretty-printAPI。这允许应用程序提供Python代码来自定义对象显示的某些方面。此代码旨在与CLI(在gdb提示符下“打印”)和MI(GUI使用或至少应该使用的界面)一起使用。足够新的GCC版

C++STL详解 string【C++】

文章目录函数模板函数模板的原理函数模板的实例化模板参数的匹配原则类模板类模板的定义格式类模板的实例化string一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、string中与迭代器相关的函数十三、string与字符串之间的转换十四、string中子字符串的提取十五、string中的getline函数函数模板函数模板的原理templatetypenameT>//模板参数—

c++ - lower_bound() 算法/STL 使用前提条件

如果为32位Linux系统编译,下面的代码会返回错误的结果,如果vector足够大,同样的问题也适用于64位系统。通常是否违反了lower_bound或STL的先决条件,如果违反了,在哪里?我从STL消息来源获悉,vector的大小被强制转换为有符号类型,这解释了行为。//compilewithandwithout-m32switch#include#include#include#includeusingnamespacestd;intmain(){try{vectorv((1ULL输出:(Linux操作系统和Clang++7.0.0)Vectormaximalsize:429496

c++ - lower_bound() 算法/STL 使用前提条件

如果为32位Linux系统编译,下面的代码会返回错误的结果,如果vector足够大,同样的问题也适用于64位系统。通常是否违反了lower_bound或STL的先决条件,如果违反了,在哪里?我从STL消息来源获悉,vector的大小被强制转换为有符号类型,这解释了行为。//compilewithandwithout-m32switch#include#include#include#includeusingnamespacestd;intmain(){try{vectorv((1ULL输出:(Linux操作系统和Clang++7.0.0)Vectormaximalsize:429496

【C++】STL——用一颗红黑树封装出map和set

用一颗红黑树封装出map和set文章目录用一颗红黑树封装出map和set一、前言二、红黑树模板参数的控制三、模板参数中仿函数的增加四、红黑树正向迭代器的实现五、红黑树的反向迭代器的实现六、红黑树的begin()和end()七、红黑树的rbegin()和rend()八、[]下标访问运算符重载九、红黑树的Find查找函数十、红黑树(修改版)源码链接十一、set、map模拟实现代码1.set的代码2.map的代码一、前言我们都知道set是K模型的容器,而map是KV模型的容器,但是它俩的底层都是用红黑树实现的,上篇博文中我们模拟实现了一颗红黑树,接下来将对其进行改造,继而用一颗红黑树封装出map和s

【C++】STL——用一颗红黑树封装出map和set

用一颗红黑树封装出map和set文章目录用一颗红黑树封装出map和set一、前言二、红黑树模板参数的控制三、模板参数中仿函数的增加四、红黑树正向迭代器的实现五、红黑树的反向迭代器的实现六、红黑树的begin()和end()七、红黑树的rbegin()和rend()八、[]下标访问运算符重载九、红黑树的Find查找函数十、红黑树(修改版)源码链接十一、set、map模拟实现代码1.set的代码2.map的代码一、前言我们都知道set是K模型的容器,而map是KV模型的容器,但是它俩的底层都是用红黑树实现的,上篇博文中我们模拟实现了一颗红黑树,接下来将对其进行改造,继而用一颗红黑树封装出map和s

【whale-starry-stl】01天 list学习笔记

一、知识点1.std::bidirectional_iterator_tagstd::bidirectional_iterator_tag是C++标准库中定义的一个迭代器类型标签,用于标识支持双向遍历的迭代器类型。在C++中,迭代器是一种泛型指针,用于遍历容器中的元素。迭代器类型标签用于标识迭代器的特性,从而在算法中选择合适的迭代器类型。std::bidirectional_iterator_tag是迭代器类型标签中的一种,用于标识支持双向遍历的迭代器类型。双向迭代器可以向前和向后遍历容器中的元素,支持++和--运算符。标准库中的许多算法都要求迭代器支持特定的操作,例如std::reverse